
// 找到所有红色表格中的td
var alltds = document.querySelectorAll("#board2 td");

// 当前回合该哪方下
var turn = "black";

var round=document.getElementById("round");


var finish=false;
var his=[];
 


// td的点击事件函数
function tdClick(e) {

    if(finish){
        return;
    }

    var td = e.target;

    var side=td.getAttribute("chess");
    if(side){
        return;
    }
    td.setAttribute("chess", turn);

    winCheck(e.target.index);

    if (turn == "black") {
        turn = "white";
        round.textContent="白方回合";
    }
    else {
        turn = "black";
        round.textContent="黑方回合";
    }

    his.push(e.target);


}



for (var i = 0; i < alltds.length; i++) {
    alltds[i].onclick = tdClick;

    alltds[i].index=i;
    //  alltds[i].textContent=i;


}


function back(){
    finish=false;
    if(his.length>0){
        var td=his.pop();
  
 
        td.removeAttribute("chess");
        // turn=turn=="black"?"white":"black";
        if (turn == "black") {
            turn = "white";
            round.textContent = "白方回合";
        }
        else {
            turn = "black";
            round.textContent = "黑方回合";
        }
    }
}

// 刷新
function restart(){
    window.location.reload();
}

// 判断输赢
function winCheck(index){
   if(horizontalCheck(index)||verticalCheck(index)||tlbrCheck(index)||tlbCheck(index)){
       finish=true;
       alert((turn=="black"?"黑":"白")+"方胜利");
   }
    
}

// 横向检查
function horizontalCheck(index){
    var num=1;
    var currentIndex=index;

    var hasNext=currentIndex%19!=0&&alltds[currentIndex-1].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex--;
        hasNext=currentIndex%19!=0&&alltds[currentIndex-1].getAttribute("chess")==turn;
    }

     var currentIndex=index;

    var hasNext=currentIndex%19!=18&&alltds[currentIndex+1].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex++;
        hasNext=currentIndex%19!=18&&alltds[currentIndex+1].getAttribute("chess")==turn;
    }
        
    return num>=5;

}


// 纵向检查

function verticalCheck(index){
    var num=1;
    var currentIndex=index;

    var hasNext=currentIndex>=19&&alltds[currentIndex-19].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=19;
        hasNext=currentIndex>=19&&alltds[currentIndex-19].getAttribute("chess")==turn;
    }

     var currentIndex=index;

    var hasNext=currentIndex<342&&alltds[currentIndex+19].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=19;
        hasNext=currentIndex<342&&alltds[currentIndex+19].getAttribute("chess")==turn;
    }
        
    return num>=5;

}


// 斜向（左上到右下）检查
function tlbCheck(index){
    var num=1;
    var currentIndex=index;

    var hasNext=currentIndex%19!=0&&currentIndex<19&&alltds[currentIndex-20].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=20;
       hasNext=currentIndex%19!=0&&currentIndex<19&&alltds[currentIndex-20].getAttribute("chess")==turn;
    }

     var currentIndex=index;

    var hasNext=currentIndex<342&&currentIndex%19!=18&&alltds[currentIndex+20].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=20;
        hasNext=currentIndex<342&&currentIndex%19!=18&&alltds[currentIndex+20].getAttribute("chess")==turn;
    }
        
    return num>=5;

}


// 斜向（右上到左下）检查
function tlbrCheck(index){
    var num=1;
    var currentIndex=index;

    var hasNext=currentIndex%19!=18&&currentIndex>19&&alltds[currentIndex-18].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=18;
      hasNext=currentIndex%19!=18&&currentIndex>19&&alltds[currentIndex-18].getAttribute("chess")==turn;
    }

     var currentIndex=index;

    var hasNext=currentIndex<342&&currentIndex%19!=0&&alltds[currentIndex+18].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=18;
         hasNext=currentIndex<342&&currentIndex%19!=0&&alltds[currentIndex+18].getAttribute("chess")==turn;
    }
        
    return num>=5;

}




